//axios 公共工具函数
//引入axios
import axios from 'axios'

//引入store仓库
import store from '@/store'
import { Message } from 'element-ui'

//封装公共地址
//封装超时时间
const instance = axios.create({
  baseURL: 'http://sell.h5.itsource.cn:8087', //公共地址
  timeout: 50000, //超时时间1
})

//封装请求拦截器
instance.interceptors.request.use(
  //config 请求信息对象
  config => {
    //1 获取token
    const token = store.getters.token
    //2 token 挂载在config.headers的某个字段(authorization)和后端商议的
    config.headers.authorization = token

    return config
  },
  //抛出错误信息
  err => {
    return Promise.reject(err)
  }
)

//封装响应拦截器
instance.interceptors.response.use(
  response => {
     //处理成功状态码
     let {msg, code} = response.data
     if (code === 0) {
       Message.success(msg)
     }
 
     if (code === 1) {
       Message.error(msg)
     }
 
     if (code === 5001) {
       Message.error(msg)
     }
     return response
  },
  //抛出错误信息
  err => {
    return Promise.reject(err)
  }
)



//导出封装好的axios
export default instance
